講完人的辨識模型,今天來介紹汽車的辨識模型
OpenCV官方GitHub:
https://github.com/andrewssobral/vehicle_detection_haarcascades/blob/master/cars.xml
汽車辨識技術,在許多領域中都有著廣泛的應用,從交通管理到商業分析再到安全監控,現在只要透過道路監視攝影機與 AI 智慧辨識系統,便可輕鬆達到全時段或部分時段自動偵測是否有違規行為發生、並協助失竊與犯罪車輛協尋
在 OpenCV 官方的 GitHub 下載模型後,將其與 Python 檔放在同一個資料夾中,並使用 cv2.CascadeClassifier 將欲使用模型載入預先訓練的分類器檔案的類別,在使用 detectMultiScale 掃描影像,使用不同的比例和位置偵測物體,並返回所有偵測到的汽車的邊框
Python:
import cv2
# 讀取圖像
img = cv2.imread('cars.jpg')
if img is None:
raise FileNotFoundError("圖片文件未找到,請確保文件存在於當前目錄。")
# 轉換成灰階圖像
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
# 讀取汽車檢測模型
car_cascade = cv2.CascadeClassifier('cars.xml')
if car_cascade.empty():
raise FileNotFoundError("汽車檢測模型未找到,請檢查文件路徑。")
# 模糊化去除雜訊
gray = cv2.medianBlur(gray, 5)
# 偵測汽車
cars = car_cascade.detectMultiScale(gray, 1.1, 3, (30, 30))
# 繪製檢測到的汽車
for (x, y, w, h) in cars:
cv2.rectangle(img, (x, y), (x+w, y+h), (0, 0, 0), 2)
# 顯示結果
cv2.imshow('Detected Cars', img)
cv2.waitKey(0) # 按下任意鍵停止
cv2.destroyAllWindows()
輸出結果:
參考資料:
https://steam.oxxostudio.tw/category/python/ai/ai-cars-dectection.html